弄了這麼久的建立訂單、訊息通知,終於要來處理第三個 API 訂單查詢
(文件寫的照貼)
OrderQuery
另外要注意的是時間的要求是不帶符號,用 date('YmdHis')
大致上就可以了 (應該吧)
OK,決定一下今日目標,這裡單純追蹤單筆
訂單狀態,
但不免俗的還是用 Postman 測一下,看回傳的結果是否要解密,基礎只有一個必填 ShopNo
與需要查詢的訂單編號 OrderNo
{
"ShopNo": "ShopNo",
"OrderNo": "20210927072942"
}
喔對是 Order 的網址,要包 sign 等等的東西,所以解密也要處理,天啊我真的是金魚腦 T_T,寫完就忘了。
那就先寫 Controller 的函數吧
// app/Http/Controllers/Controller.php
public function track_order()
{
$sinopac = $this->initSinopac();
$data = $sinopac->requestDataset('OrderQuery', [
'ShopNo' => 'NA0249_001',
'OrderNo' => '20210927072942'
]);
$message = $sinopac->callApi('https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/Order', $data);
$decrypt_message = $this->reply_message_decrypt($sinopac, $message);
dd($decrypt_message);
return $decrypt_message;
}
建立 api Route
// routes/api.php
Route::post('/track_order', [\App\Http\Controllers\Controller::class, 'track_order']);
serve 起來後,用 Postmen 看一下結果
這裡要注意一下的就是 OrderList
為陣列
而每一筆訂單的 PayType 會影響內容
[
'A' => 'ATMParam', // ATM
'C' => 'CardParam', // 信用卡
]
今天就先這樣,明天來建立訂單查詢的 view,針對回覆內容來微調今天建立的 track_order
明天見